import { postRequest, getRequest } from '/@/lib/axios';

/**
 * 安全事件基础信息 ES API
 * 
 * @Author:    chenyuqiang
 * @Date:      2025-01-27 10:00:00
 * @Copyright 1.0
 */

/**
 * 分页查询安全事件
 * @param {Object} param - 查询参数
 * @returns {Promise} 查询结果
 */
export function queryPage(param) {
    return postRequest({
        url: '/api/elasticsearch/event/queryPage',
        data: param,
    });
}

/**
 * 条件查询安全事件列表
 * @param {Object} param - 查询参数
 * @returns {Promise} 查询结果
 */
export function queryList(param) {
    return postRequest({
        url: '/api/elasticsearch/event/queryList',
        data: param,
    });
}

/**
 * 获取安全事件总数
 * @returns {Promise} 总数结果
 */
export function getCount() {
    return getRequest({
        url: '/api/elasticsearch/event/count',
    });
}

/**
 * 根据条件获取安全事件数量
 * @param {Object} param - 查询条件
 * @returns {Promise} 数量结果
 */
export function getCountByCondition(param) {
    return postRequest({
        url: '/api/elasticsearch/event/countByCondition',
        data: param,
    });
}

/**
 * 根据ID获取事件详情
 * @param {Object} param - 查询参数
 * @returns {Promise} 事件详情
 */
export function getEventById(param) {
    return postRequest('/api/elasticsearch/event/detail', param);
}

/**
 * 获取事件类型统计
 * @returns {Promise} 统计结果
 */
export function getEventTypeStats() {
    return getRequest({
        url: '/api/elasticsearch/event/stats/eventType',
    });
}

/**
 * 获取危险等级统计
 * @returns {Promise} 统计结果
 */
export function getSeverityStats() {
    return getRequest({
        url: '/api/elasticsearch/event/stats/severity',
    });
}

/**
 * 获取地理位置统计
 * @returns {Promise} 统计结果
 */
export function getGeoStats() {
    return getRequest({
        url: '/api/elasticsearch/event/stats/geography',
    });
}

/**
 * 获取时间趋势统计
 * @param {Object} param - 时间参数
 * @returns {Promise} 统计结果
 */
export function getTimeTrendStats(param) {
    return postRequest({
        url: '/api/elasticsearch/event/stats/timeTrend',
        data: param,
    });
}

/**
 * 导出安全事件数据
 * @param {Object} param - 导出参数
 * @returns {Promise} 导出结果
 */
export function exportEvents(param) {
    return postRequest({
        url: '/api/elasticsearch/event/export',
        data: param,
        responseType: 'blob',
    });
}

/**
 * 获取ES集群状态
 * @returns {Promise} 集群状态
 */
export function getClusterStatus() {
    return getRequest({
        url: '/api/elasticsearch/cluster/status',
    });
}

/**
 * 获取索引信息
 * @returns {Promise} 索引信息
 */
export function getIndexInfo() {
    return getRequest({
        url: '/api/elasticsearch/index/info',
    });
}

export const eventBaseEsApi = {
    // 分页查询
    queryPage: (param) => {
        return postRequest('/api/elasticsearch/event/queryPage', param);
    },

    // 获取ES集群状态
    getClusterStatus: () => {
        return getRequest('/api/elasticsearch/cluster/status');
    },

    // 获取索引信息
    getIndexInfo: () => {
        return getRequest('/api/elasticsearch/index/info');
    },

    // 获取字段配置
    getFieldConfigs: () => {
        return getRequest('/api/elasticsearch/field/config');
    },

    // 获取事件详情
    getEventById: (param) => {
        return postRequest('/api/elasticsearch/event/detail', param);
    },
    // SOAR 处置
    soarDisposal: (params) => {
        return postRequest('/api/elasticsearch/event/cz', params);
    }
}; 